home *** CD-ROM | disk | FTP | other *** search
/ Fritz: All Fritz / All Fritz.zip / All Fritz / FILES / EDUCMISC / EDPAK_2.LZH / FLASH.BAS < prev    next >
BASIC Source File  |  1984-01-31  |  21KB  |  735 lines

  1. 4 DEFINT A-W,Y-Z
  2. 35 DIM K$(80)
  3. 40 DIM FLGV(2500)
  4. 70 CH = 29
  5. 75 PRINT FRE(0)
  6. 80 GOSUB 50000
  7. 100 GOSUB 52000
  8. 200 GOTO 40000
  9. 500 REM ******* CLS
  10. 510 CLS 
  11. 520 RETURN
  12. 7000 REM FIND LENGTH OF WORD
  13. 7010 MAX = 0
  14. 7020 MAX = MAX + 1
  15. 7030 IF MID$(WD$,MAX,1) = " " THEN RETURN
  16. 7040 GOTO 7020
  17. 8000 REM ***** FILE NAME ACCEPLABLE TEST ************
  18. 8010 TEST = 1
  19. 8100 FOR Q = 1 TO LEN(A$)
  20. 8110 K$(Q) = MID$(A$,Q,1)
  21. 8120 C = ASC(K$(Q))
  22. 8130 IF C < 48 OR C > 122 THEN TEST = 4
  23. 8140 IF Q = 1 AND ( C < 65 OR C > 122 ) THEN TEST = 4
  24. 8150 NEXT Q
  25. 8190 RETURN
  26. 9000 REM OPEN DATA FILE
  27. 9010  OPEN "R",#2,"CARDS",128
  28. 9020  FIELD #2,28 AS WD$,50 AS DF1$,50 AS DF2$
  29. 9030 MRN = LOF(2)/128
  30. 9050 RETURN
  31. 9100 REM open and read flag file
  32. 9105 K = 1
  33. 9110 ON ERROR GOTO 9500
  34. 9120 OPEN "I",#3,"FLAG"
  35. 9125 ON ERROR GOTO 0
  36. 9127 INPUT #3,RN,MI
  37. 9130 IF EOF(3) THEN 9200
  38. 9140 INPUT #3, FLGV(K)
  39. 9150 K = K + 1
  40. 9160 GOTO 9130 
  41. 9200 CLOSE #3
  42. 9205 GOSUB 9400
  43. 9210 RETURN
  44. 9300 REM open and read flag file
  45. 9305 K = 1
  46. 9310 ON ERROR GOTO 9500
  47. 9320 OPEN "I",#3,"SFLAG"
  48. 9325 ON ERROR GOTO 0
  49. 9327 INPUT #3,RN,MI
  50. 9330 IF EOF(3) THEN 9200
  51. 9340 INPUT #3, FLGV(K)
  52. 9350 K = K + 1
  53. 9360 GOTO 9330 
  54. 9400 REM cont number of times missed
  55. 9405 GOSUB 9470
  56. 9410 FOR T = 1 TO MRN
  57. 9420 R = FLGV(T)
  58. 9430 IF R > 8 THEN R = 8
  59. 9440 KTM(R) = KTM(R) + 1
  60. 9450 NEXT T
  61. 9460 RETURN
  62. 9470 REM SET KTM(R) TO 0
  63. 9475 FOR T = 0 TO 8
  64. 9480 KTM(T) = 0
  65. 9485 NEXT T
  66. 9490 RETURN
  67. 9500 REM FILE NOT FOUND
  68. 9510 PRINT " THE FILE WITH YOUR PAST RESULTS HAS NOT BEEN FOUND"
  69. 9520 ON ERROR GOTO 0
  70. 9550 GOSUB 60000
  71. 9560 RETURN
  72. 9600 REM WRITE FLAG FILE
  73. 9610 PRINT " WRITING INFORMATION ON DISK, PLEASE WAIT"
  74. 9620 OPEN "O",#3,"FLAG"
  75. 9625 WRITE #3, RN, MI
  76. 9630 FOR T = 1 TO MRN 
  77. 9640 WRITE #3, FLGV(T)
  78. 9645 REM  PRINT FLGV(T)
  79. 9650 NEXT T
  80. 9655 CLOSE #3
  81. 9660 RETURN
  82. 9700 REM WRITE FLAG FILE
  83. 9710 PRINT " WRITING INFORMATION ON DISK, PLEASE WAIT"
  84. 9720 OPEN "O",#3,"SFLAG"
  85. 9725 WRITE #3, RN, MI
  86. 9730 FOR T = 1 TO MRN 
  87. 9740 WRITE #3, FLGV(T)
  88. 9750 NEXT T
  89. 9755 CLOSE #3
  90. 9760 RETURN
  91. 10000 REM CONVERT FILES
  92. 10010 GOSUB 500
  93. 10100 PRINT " THIS PROGRAM CONVERTS FILES FROM SEQUENTIAL FILES"
  94. 10110 PRINT " TO RANDOM ACCESS FILES TO USE IN THIS PROGRAM "
  95. 10120 PRINT " "
  96. 10130 PRINT " YOU ONLY NEED TO USE THIS OPTION IF YOU ARE ADDING WORDS TO THE PROGRAM "
  97. 10140 PRINT ""
  98. 10150 PRINT "ENTER THE NAME OF THE FILE YOU WANT TO CONVERT "
  99. 10160 PRINT "JUST PRESS RETURN IF YOU DO NOT WANT TO CONVERT ANY FILES "
  100. 10170 MAX = 8
  101. 10180 GOSUB 62030
  102. 10190 IF A$ = "" THEN 40000
  103. 10200 GOSUB 8000
  104. 10210 IF TEST = 4 THEN 10000
  105. 10400 OPEN "I",#1,A$
  106. 10500 GOSUB 9000 
  107. 10550 RN = 0
  108. 10600 IF EOF(1) = -1 THEN 10900
  109. 10610 LINE INPUT #1,WI$
  110. 10612 LINE INPUT #1,DI1$
  111. 10614 LINE INPUT #1,DI2$
  112. 10625 LSET  WD$ = WI$
  113. 10630 PRINT WD$; "----"
  114. 10635 LSET  DF1$ = DI1$
  115. 10640 PRINT DF1$
  116. 10645 LSET  DF2$ = DI2$
  117. 10647 PRINT DF2$
  118. 10650 RN = RN + 1
  119. 10675 IF LEN(DI1$) > 50 AND MID$(DI1$,51,1) >< " " THEN GOSUB 10920
  120. 10678 IF LEN(DI2$) > 50 AND MID$(DI2$,51,1) >< " " THEN GOSUB 10920
  121. 10700 PUT #2,RN
  122. 10710 GOTO 10600
  123. 10900 CLOSE 
  124. 10910 GOTO 40000
  125. 10920 IF INKEY$ = "" THEN 10920
  126. 10930 RETURN
  127. 10950 REM START FLASH CARDS
  128. 10960 GOSUB 9000
  129. 10965 GOSUB 9100
  130. 10970 GOSUB 23000
  131. 10975 GOSUB 13000
  132. 10980 RGT = 0
  133. 10990 WRG = 0
  134. 11000 IF FLGV(RN) < MI THEN 16000
  135. 11003 GET #2,RN
  136. 11005 GOSUB 500
  137. 11010 IF RV = 1 THEN PRINT WD$;TAB(35)" 0 - exit ";TAB (50) "RIGHT"; RGT;" WRONG ";WRG
  138. 11012 IF RV = 2 THEN PRINT DF1$;TAB(35) " 0 - exit ";TAB (50) "RIGHT"; RGT;" WRONG ";WRG
  139. 11014 IF RV = 2 THEN PRINT DF2$
  140. 11020 GOSUB 12000
  141. 11030 GOSUB 60000
  142. 11040 IF DT# < 0 OR DT# > 6 THEN 11030
  143. 11045 IF DT# = 0 THEN 18000
  144. 11100 IF DT# = T THEN 14000 ELSE 15000
  145. 12000 REM print random options on screen
  146. 12010 T = INT(RND * 7 + 1 )
  147. 12020 IF T = 7 THEN 12010
  148. 12030 FOR N = 1 TO 6
  149. 12040 RNT= INT(RND * MRN + 1)
  150. 12050 IF RNT = RN THEN 12040
  151. 12060 PRINT N
  152. 12063 IF N >< T THEN 12100
  153. 12065 GET #2,RN 
  154. 12070 IF RV = 1 THEN PRINT DF1$
  155. 12080 IF RV = 1 THEN PRINT DF2$
  156. 12085 IF RV = 2 THEN PRINT WD$
  157. 12087 IF RV = 2 THEN PRINT "" 
  158. 12090 GOTO 12200
  159. 12100 GET #2,RNT
  160. 12110 IF RV = 1 THEN PRINT DF1$ ELSE PRINT WD$
  161. 12120 IF RV = 1 THEN PRINT DF2$
  162. 12130 IF RV = 2 THEN PRINT ""
  163. 12200 NEXT N
  164. 12300 RETURN
  165. 13000 REM reverse
  166. 13010 GOSUB 500
  167. 13020 PRINT "*******  HOW DO YOU WANT THE QUESTIONS ASKED  ******* "
  168. 13030 PRINT " 1 - SHOW PROMPT, MULTIPLE CHOICE OF DESCRIPTIONS "
  169. 13040 PRINT " 2 - SHOW DESCRIPTION, MULTIPLE CHOICE OF PROMPTS "
  170. 13050 PRINT "********  ENTER THE NUMBER THEN PRESS RETURN  *******"
  171. 13060 GOSUB 60000
  172. 13070 IF DT# < 1 OR DT# > 2 THEN 13000
  173. 13080 RV = DT#
  174. 13100 RETURN
  175. 14000 REM  KNOWS SUBROUTINE"
  176. 14100 PRINT " RIGHT AGAIN "
  177. 14105 IF INKEY$ = "" THEN 14105
  178. 14110 RGT = RGT + 1
  179. 14500 GOTO 16000
  180. 15000 REM DONT KNOW SUBROUTINE 
  181. 15020 PRINT " WRONG "
  182. 15030 PRINT " THE CORRECT ANSWER IS ";T
  183. 15040 WRG = WRG + 1
  184. 15050 IF INKEY$ = "" THEN 15050
  185. 15100 FLGV(RN) = FLGV(RN) + 1
  186. 15500 GOTO 16000
  187. 16000 REM CONTINUE
  188. 16100 RN = RN + 1
  189. 16110 IF RN > MRN THEN 17000
  190. 16500 GOTO 11000
  191. 17000 REM END OF CARDS
  192. 17010 GOSUB 39000
  193. 17300 RN = 1
  194. 17305 IF DT# = 2 THEN 11000
  195. 17310 MI = 0
  196. 17400 GOSUB 9600
  197. 17500 GOTO 40000
  198. 18000 REM 
  199. 18100 PRINT "**********  DO YOU WANT TO  ****************"
  200. 18110 PRINT "         1 - EXIT "
  201. 18120 PRINT "         2 - CONTINUE "
  202. 18130 PRINT "***  ENTER THE NUMBER THEN PRESS RETURN  ***"
  203. 18140 GOSUB 60000
  204. 18150 IF DT# > 2 OR DT# < 1 THEN 18000
  205. 18160 IF DT# = 2 THEN 11000
  206. 18165 GOSUB 9600
  207. 18170 GOTO 40000
  208. 20000 REM START FLASH CARDS
  209. 20100 GOSUB 9000
  210. 20110 GOSUB 9100
  211. 20130 GOSUB 23000
  212. 20500 REM reverse
  213. 20510 GOSUB 500
  214. 20520 PRINT "*******  DO YOU WANT TO SEE THE CARDS  *******"
  215. 20530 PRINT "           1 - PROMPT FIRST "
  216. 20540 PRINT "           2 - DESCRIPTION FIRST "
  217. 20550 PRINT "****  ENTER THE NUMBER THEN PRESS RETURN  ****"
  218. 20560 GOSUB 60000
  219. 20570 IF DT# < 1 OR DT# > 2 THEN 20560
  220. 20580 RV = DT#
  221. 21000 IF FLGV(RN) < MI THEN 26000
  222. 21002 IF T = RN THEN 21005
  223. 21003 GET #2,RN 
  224. 21005 GOSUB 500
  225. 21010 IF RV = 1 THEN PRINT WD$
  226. 21012 IF RV = 2 THEN PRINT DF1$
  227. 21014 IF RV = 2 THEN PRINT DF2$
  228. 21016 IF RV = 2 THEN PRINT ""
  229. 21020 T$ = INKEY$
  230. 21022 IF T$  = "" THEN 21020 
  231. 21025 IF T$ = "K" OR T$ = "k" THEN 24000
  232. 21027 IF T$ = "E" OR T$ = "e" THEN 28000
  233. 21030 IF RV = 1 THEN PRINT DF1$
  234. 21035 IF RV = 2 THEN PRINT WD$
  235. 21040 IF RV = 1 THEN PRINT DF2$
  236. 21042 PRINT ""
  237. 21043 GOSUB 27600
  238. 21045 T$ = INKEY$
  239. 21050 IF T$ = "" THEN 21045
  240. 21100 IF T$ = "K" OR T$ = "k" THEN 24000
  241. 21110 IF T$ = "D" OR T$ = "d" THEN 25000
  242. 21115 IF T$ = "E" OR T$ = "e" THEN 28000
  243. 21118 PRINT "PRESS  D - don't know or  K - know  E - exit     "
  244. 21120 GOTO 21045
  245. 23000 REM ask which ones you want to review
  246. 23010 GOSUB 500
  247. 23055 GOSUB 23500
  248. 23058 PRINT ""
  249. 23060 PRINT "YOU MAY REVIEW CARDS THAT WERE MISSED X NUMBER OF TIMES OR MORE  "
  250. 23070 PRINT "ENTER 0 IF YOU WANT TO REVIEW ALL CARDS "
  251. 23100 GOSUB 60000
  252. 23110 MI = DT#
  253. 23200 PRINT "WHICH CARD DO YOU WANT TO START/CONTINUE AT"
  254. 23205 IF RN < 1 THEN RN = 1
  255. 23210 PRINT "COMPUTER RECCOMENDS ";RN
  256. 23215 IF RN > 1 THEN PRINT "YOU ENDED YOUR LAST REVIEW ON CARD NUMBER ";RN
  257. 23220 GOSUB 60060
  258. 23230 IF DT# < 1 OR DT# >MRN THEN 23200
  259. 23235 RN = DT#
  260. 23240 RETURN
  261. 23500 REM PRINT NUMBER OF TIMES MISSED
  262. 23510 FOR T = 0 TO 7
  263. 23520 PRINT "TOTAL CARDS MISSED ";T;" TIMES IS ";KTM(T)
  264. 23530 NEXT T
  265. 23535 PRINT "TOTAL CARDS MISSED >7  TIMES IS ";KTM(8)
  266. 23540 RETURN
  267. 24000 REM  KNOWS SUBROUTINE"
  268. 24500 GOTO 26000
  269. 25000 REM DONT KNOW SUBROUTINE 
  270. 25100 FLGV(RN) = FLGV(RN) + 1
  271. 25500 GOTO 26000
  272. 26000 REM CONTINUE
  273. 26100 RN = RN + 1
  274. 26110 IF RN > MRN THEN 27000
  275. 26500 GOTO 21000
  276. 27000 REM END OF CARDS
  277. 27100 GOSUB 39000
  278. 27300 RN = 1
  279. 27305 IF DT# = 2 THEN 21000
  280. 27310 MI = 0
  281. 27400 GOSUB 9600
  282. 27500 GOTO 40000
  283. 27600 REM GET RECORD IN ADVANCE
  284. 27610 T = RN + 1
  285. 27620 IF T > MRN THEN RETURN
  286. 27630 IF MI <= FLGV(T) THEN 27700
  287. 27640 T = T + 1
  288. 27650 GOTO 27620
  289. 27700 GET #2,T
  290. 27710 RETURN
  291. 28000 REM 
  292. 28100 PRINT "**********  DO YOU WANT TO  ****************"
  293. 28110 PRINT "   1 - EXIT "
  294. 28120 PRINT "   2 - CONTINUE WITH THE CARDS "
  295. 28130 PRINT "***  ENTER THE NUMBER THEN PRESS RETURN  ***"
  296. 28140 GOSUB 60000
  297. 28150 IF DT# > 2 OR DT# < 1 THEN 28000
  298. 28160 IF DT# = 2 THEN 21000
  299. 28170 GOSUB 9600
  300. 28200 GOTO 40000
  301. 30000 REM START SPELLING    
  302. 30100 GOSUB 9000
  303. 30110 GOSUB 9300
  304. 30120 GOSUB 23000
  305. 30200 REM 
  306. 31000 IF FLGV(RN) < MI THEN 36000
  307. 31003 GET #2,RN
  308. 31005 GOSUB 500
  309. 31010 PRINT DF1$;TAB(60)"E - EXIT"
  310. 31012 PRINT DF2$
  311. 31015 K1$= LEFT$(WD$,1)
  312. 31018 PRINT ""
  313. 31020 PRINT TAB(2) K1$
  314. 31030 GOSUB 7000   
  315. 31035 MAX = MAX - 1
  316. 31040 GOSUB 62030
  317. 31050 IF A$ = "E" OR A$ = "e" THEN GOTO 38000
  318. 31100 IF A$ = LEFT$(WD$,MAX) THEN  34000 ELSE 35000
  319. 34000 REM  KNOWS SUBROUTINE"
  320. 34010 PRINT " RIGHT "
  321. 34100 IF INKEY$ = "" THEN 34100
  322. 34500 GOTO 36000
  323. 35000 REM DONT KNOW SUBROUTINE 
  324. 35010 PRINT TAB(2) WD$
  325. 35020 PRINT " WRONG "
  326. 35030 IF INKEY$ = "" THEN 35030
  327. 35035 FLGV(RN) = FLGV(RN) + 1
  328. 35500 GOTO 36000
  329. 36000 REM CONTINUE
  330. 36100 RN = RN + 1
  331. 36110 IF RN > MRN THEN 37000
  332. 36500 GOTO 31000
  333. 37000 REM END OF CARDS
  334. 37060 RN = 1
  335. 37065 GOSUB 39000
  336. 37070 IF DT# = 2 THEN 31000
  337. 37080 MI = 1
  338. 37100 GOSUB 9700
  339. 37130 GOTO 40000
  340. 38000 REM exit the spelling checker
  341. 38100 PRINT "************  DO YOU WANT TO  **************"
  342. 38110 PRINT "   1 - EXIT "
  343. 38120 PRINT "   2 - CONTINUE WITH THE CARDS "
  344. 38130 PRINT "***  ENTER THE NUMBER THEN PRESS RETURN  ***"
  345. 38140 GOSUB 60000
  346. 38150 IF DT# > 2 OR DT# < 1 THEN 38000
  347. 38160 IF DT# = 2 THEN 31000
  348. 38170 GOSUB 9700
  349. 38200 GOTO 40000
  350. 39000 REM END OF FILE
  351. 39100 PRINT "****  END OF FLASH CARDS ON THIS DISK  *****"
  352. 39110 PRINT "           DO YOU WANT TO "
  353. 39120 PRINT "   1 - RETURN TO MAIN MENU "
  354. 39130 PRINT "   2 - RUN THROUGH THE SAME CARDS AGAIN "
  355. 39140 PRINT "***  ENTER THE NUMBER THEN PRESS RETURN  ***"
  356. 39150 GOSUB 60000
  357. 39160 IF DT# < 1 OR DT# > 2 THEN 39150
  358. 39300 RETURN
  359. 40000 REM *******  INITIAL MENU   *********
  360. 40030 CLOSE
  361. 40060 GOSUB 500
  362. 40080 PRINT "****************    FLASH  CARD  MENU   ******************"
  363. 40100 PRINT ""
  364. 40120 PRINT "    0 - EXIT TO OPERATING SYSTEM"
  365. 40125 PRINT ""
  366. 40140 PRINT "    1 - FLASH CARDS "
  367. 40145 PRINT ""
  368. 40160 PRINT "    2 - MULTIPLE CHOICE    "
  369. 40165 PRINT ""
  370. 40180 PRINT "    3 - SPELLING REVIEW   "
  371. 40185 PRINT ""
  372. 40200 PRINT "    4 - PRINT CARDS ON PAPER   "
  373. 40205 PRINT ""
  374. 40220 PRINT "    5 - CONVERT FILES  "
  375. 40240 PRINT ""
  376. 40245 PRINT "    6 - RESET MISSED WORDS TO 0 "
  377. 40250 PRINT ""
  378. 40260 PRINT "*********  ENTER THE NUMBER THEN PRESS RETURN  ***********"
  379. 40280 GOSUB 60000
  380. 40282 IF DT# <0 OR DT# >6 GOTO 40280
  381. 40300 T = DT#
  382. 40310 IF T = 0 THEN 51000
  383. 40320 ON T GOTO 20000,10950,30000,41000,10000,42000
  384. 40340 GOSUB 500
  385. 41000 REM print words on paper
  386. 41100 GOSUB 9000
  387. 41110 GOSUB 500
  388. 41120 PRINT "   DO YOU WANT TO PRINT:"
  389. 41130 PRINT "   1 - CARDS THAT YOU ARE HAVING RECOGNITION PROBLEMS WITH "
  390. 41140 PRINT "   2 - CARDS THAT YOU ARE HAVING SPELLING PROBLEMS WITH "
  391. 41150 PRINT "   0 - RETURN TO MAIN MENU
  392. 41160 PRINT "   ENTER THE OPTION NUMBER THEN PRESS RETURN "
  393. 41170 GOSUB 60000
  394. 41180 IF DT# < 0 OR DT# > 2 THEN 41110
  395. 41185 IF DT# = 0 THEN 40000
  396. 41190 IF DT# = 1 THEN GOSUB 9100 ELSE GOSUB 9300
  397. 41195 GOSUB 41500
  398. 41300 GOSUB 23000
  399. 41305 PRINT " PRESS ANY KEY TO PAUSE "
  400. 41310 FOR T = 1 TO MRN
  401. 41312 IF INKEY$ >< "" THEN 41700
  402. 41315 IF FLGV(T) < MI THEN 41360
  403. 41320 GET #2,T
  404. 41330 PRINT WD$
  405. 41340 PRINT DF1$
  406. 41350 PRINT DF2$
  407. 41355 IF LPRT = 2 THEN GOSUB 41600
  408. 41360 NEXT T
  409. 41400 GOTO 40000
  410. 41500 REM ask lprint option
  411. 41510 PRINT "*********  DO YOU WANT THE CARDS  ************"
  412. 41520 PRINT "    1 - SHOWN ON THE SCREEN ONLY "
  413. 41530 PRINT "    2 - SHOWN ON THE SCREEN AND ON PAPER"
  414. 41540 PRINT "****  ENTER THE NUMBER THEN PRESS RETURN  ****"
  415. 41560 GOSUB 60000
  416. 41570 IF DT# < 1 OR DT# >2 THEN 41560
  417. 41580 LPRT = DT#
  418. 41590 RETURN
  419. 41600 REM  PRINT ON PAPER
  420. 41630 LPRINT WD$
  421. 41640 LPRINT DF1$
  422. 41650 LPRINT DF2$
  423. 41660 RETURN
  424. 41700 REM PAUSE SUBROUTINE
  425. 41710 PRINT "************  PAUSE SUBROUTINE  ************ "
  426. 41720 PRINT "    1 - CONTINUE  2 - BACK TO MAIN MENU "
  427. 41725 PRINT "***  ENTER THE NUMBER THEN PRESS RETURN  ***"
  428. 41730 GOSUB 60000
  429. 41740 IF DT# < 1 OR DT# > 2 THEN 41730
  430. 41750 IF DT# = 1 THEN 41312 ELSE 40000
  431. 42000 REM reset missed 
  432. 42100 GOSUB 500
  433. 42110 PRINT " USE THIS NEW OPTION IF YOU ARE A NEW STUDENT "
  434. 42120 PRINT " THIS OPTION WILL RESET THE WORDS PREVIOUSLY MISSED TO NONE"
  435. 42130 PRINT ""
  436. 42140 PRINT " DO YOU WANT TO CLEAR ALL THE MISSES"
  437. 42150 PRINT "      1 - NO "
  438. 42160 PRINT "      2 - YES "
  439. 42165 PRINT " ENTER THE NUMBER THEN PRESS RETURN"
  440. 42170 GOSUB 60000
  441. 42180 IF DT# < 1 OR DT# > 2 THEN 42170
  442. 42190 IF DT# = 1 THEN 40000
  443. 42300 FOR T = 1 TO MRN
  444. 42310 FLGV(T) = 0
  445. 42320 NEXT T
  446. 42330 GOSUB 9600
  447. 42340 GOSUB 9700
  448. 42350 GOTO 40000
  449. 50000 REM **********  INTRO
  450. 50010 GOSUB 500
  451. 50100 PRINT "           F L A S H    C A R D    P R O G R A M    1.0   "
  452. 50105 PRINT ""
  453. 50110 PRINT "         Copyright 1985 by Potomac Pacific Engineering Inc."
  454. 50120 PRINT ""
  455. 50130 PRINT "This program is licensed FREE to all users with some restrictions"
  456. 50165 PRINT "        See the manual for more information on the license."
  457. 50167 PRINT ""
  458. 50950 PRINT "******************  PRESS ANY KEY TO CONTINUE  *****************";
  459. 50960 IF INKEY$ = "" GOTO 50960
  460. 50970 RETURN
  461. 51000 REM ***** EXIT TO SYSTEM
  462. 51050 REM   GOSUB 9600
  463. 51100 GOSUB 500
  464. 51110 CLOSE
  465. 51120 PRINT " -BYE, Have a nice day"
  466. 51130 END
  467. 52000 REM ***** INTRO 1
  468. 52010 GOSUB 500
  469. 52100 PRINT "           Put the disk with the files (cards) that you "
  470. 52105 PRINT "            want to use in the defualt disk drive "
  471. 52110 PRINT ""
  472. 52120 PRINT "          *****  THEN PRESS ANY KEY TO CONTINUE  *****"
  473. 52130 PRINT ""
  474. 52140 PRINT "Keep it in the default disk drive at all times during this program."
  475. 52150 PRINT "      The Flash Card program only uses the Default disk drive"
  476. 52200 IF INKEY$ = "" GOTO 52200
  477. 52210 RETURN
  478. 60000 REM *******  INTEGER LESS THEN 100 CHECK  ********
  479. 60010 MAX = 2
  480. 60020 ACT$ = "1234567890=<>^"
  481. 60030 IF NE = 0 THEN ACT$ = "1234567890"
  482. 60040 PRINT ">__<";
  483. 60050 GOTO 60240
  484. 60060 REM *******  INTEGER *******                        
  485. 60070 MAX = 8
  486. 60080 ACT$ = "1234567890-+,=<>^"
  487. 60090 IF NE = 0 THEN ACT$ = "1234567890-+,"
  488. 60100 PRINT ">________<";
  489. 60110 GOTO 60240
  490. 60120 REM *******  SINGLE PRECISION  *******                        
  491. 60130 MAX = 10
  492. 60140 ACT$ = "1234567890-+,.%$=<>^"
  493. 60150 IF NE = 0 THEN ACT$ = "1234567890+-,.%$"
  494. 60160 PRINT ">__________<";
  495. 60170 GOTO 60240
  496. 60180 REM *******  DOUBLE PRECISION  *******                        
  497. 60190 MAX = 20
  498. 60200 ACT$ = "1234567890-+,.%$=<>^"
  499. 60210 IF NE = 0 THEN ACT$ = "1234567890+-,.%$"
  500. 60220 PRINT ">____________________<";
  501. 60230 GOTO 60240
  502. 60240 REM ********** NUMBER CHECK **********
  503. 60250 A$ = ""
  504. 60260 K$(20) = " "
  505. 60270 KTMAX = 0
  506. 60280 FOR T9 = 1 TO MAX
  507. 60290 K$(T9) = " "
  508. 60300 NEXT T9
  509. 60310 DIG$ = "1234567890."
  510. 60320 DOTFLG = 0
  511. 60330 T2 = MAX + 1
  512. 60340 FOR T6 = 1 TO T2
  513. 60350 PRINT CHR$(CH);
  514. 60360 NEXT T6
  515. 60370 IF INKEY$ = "" GOTO 60380 ELSE GOTO 60370
  516. 60380 KT = 0
  517. 60390 REM ***********  CHECK ALFANUMERIC INPUT FOR LENGTH  ***********
  518. 60400 KT = KT + 1
  519. 60410 REM     
  520. 60420 W$ = INKEY$
  521. 60430 IF W$ = "" GOTO 60420
  522. 60440 C = ASC(W$)
  523. 60450 IF C = 0 THEN GOSUB 61900
  524. 60460 IF C = 13 GOTO 60580
  525. 60470 IF C = 17 OR C = 8 GOTO 61150
  526. 60480 IF C = 19 GOTO 60670
  527. 60490 IF C = 4 GOTO 60720
  528. 60500 IF C = 6 GOTO 60780
  529. 60510 IF C = 1 GOTO 60960
  530. 60520 IF KT > MAX GOTO 60410
  531. 60530 IF INSTR(ACT$,W$) = 0 GOTO 61230
  532. 60540 K$(KT) = W$
  533. 60550 PRINT K$(KT);
  534. 60560 IF KT > KTMAX THEN KTMAX = KT
  535. 60570 GOTO 60400
  536. 60580 REM **********  RETURN  **********
  537. 60590 FOR T9 = 1 TO KTMAX
  538. 60600 A$ = A$ + K$(T9)
  539. 60610 NEXT T9
  540. 60620 IF KTMAX = 0 THEN PRINT "1"
  541. 60630 IF KTMAX = 0 THEN DT# = 1
  542. 60640 IF KTMAX = 0 THEN RETURN
  543. 60650 PRINT ""
  544. 60660 GOTO 61260
  545. 60670 REM ********* MOVE CURSE BACK ********
  546. 60680 IF KT = 1 GOTO 60410
  547. 60690 KT = KT - 1
  548. 60700 PRINT CHR$(CH);
  549. 60710 GOTO 60410
  550. 60720 REM ********* MOVE CURSER FORWARD *********
  551. 60730 IF KT >= MAX GOTO 60410
  552. 60740 IF KT > (KTMAX + 1) GOTO 60410
  553. 60750 PRINT K$(KT);
  554. 60760 KT = KT + 1
  555. 60770 GOTO 60410
  556. 60780 REM ********** INSERT ***********
  557. 60790 IF KT > KTMAX GOTO 60410
  558. 60800 X9 = MAX
  559. 60810 WHILE X9 > KT
  560. 60820 X9 = X9 - 1
  561. 60830 K$(X9 + 1) = K$(X9)
  562. 60840 WEND 
  563. 60850 K$(KT) = " "
  564. 60860 KTMAX = KTMAX + 1
  565. 60870 IF KTMAX > MAX THEN KTMAX = MAX
  566. 60880 FOR T9 = KT TO KTMAX
  567. 60890 PRINT K$(T9);
  568. 60900 NEXT T9
  569. 60910 T6 = (KTMAX - KT) + 1
  570. 60920 FOR T7 = 1 TO T6
  571. 60930 PRINT CHR$(CH);
  572. 60940 NEXT T7
  573. 60950 GOTO 60410
  574. 60960 REM ********** DELETE ***********
  575. 60970 IF KT > KTMAX GOTO 60410
  576. 60980 IF KTMAX = 1 GOTO 60410
  577. 60990 K$(MAX + 1) = ""
  578. 61000 X9 = KT 
  579. 61010 WHILE X9 <= MAX
  580. 61020 K$(X9) = K$(X9 + 1)
  581. 61030 X9 = X9 + 1
  582. 61040 WEND 
  583. 61050 KTMAX = KTMAX - 1
  584. 61060 FOR T9 = KT TO KTMAX
  585. 61070 PRINT K$(T9);
  586. 61080 NEXT T9
  587. 61090 PRINT "_";
  588. 61100 T7 = (KTMAX - KT) + 2
  589. 61110 FOR T8 = 1 TO T7
  590. 61120 PRINT CHR$(CH);
  591. 61130 NEXT T8
  592. 61140 GOTO 60410
  593. 61150 REM ********* BACKSPACE ********
  594. 61160 IF KT = 1 GOTO 60410
  595. 61170 KT = KT - 1
  596. 61180 PRINT CHR$(CH);
  597. 61190 K$(KT) = " " 
  598. 61200 PRINT "_";
  599. 61210 PRINT CHR$(CH);
  600. 61220 GOTO 60410
  601. 61230 REM *******  INPUT NOT ACCEPTABLE  ********
  602. 61240 PRINT CHR$(7);
  603. 61250 GOTO 60420
  604. 61260 REM ********* CLEAR STRINGS ********
  605. 61270 MAX = LEN(A$)
  606. 61280 D2$ = ""
  607. 61290 D1$ = ""
  608. 61300 DFLG = 0
  609. 61310 FOR Q93 = 1 TO MAX
  610. 61320 R$ = MID$(A$,Q93,1)
  611. 61330 IF INSTR(DIG$,R$) = 0 GOTO 61400
  612. 61340 IF R$ = "." OR DFLG = 1 GOTO 61380
  613. 61350 IF DFLG = 1 GOTO 61380
  614. 61360 D2$ = D2$ + R$
  615. 61370 GOTO 61400
  616. 61380 D1$ = D1$ + R$
  617. 61390 DFLG = 1
  618. 61400 NEXT Q93
  619. 61410 DA# = VAL(D2$)
  620. 61420 D1# = VAL(D1$)
  621. 61430 DT# = DA# + D1#
  622. 61440 IF K$(1) = "-" THEN DT# =  -DT#   
  623. 61450 RETURN
  624. 61900 REM ****** CHECK FOR ASC0
  625. 61910 S4$ = INKEY$
  626. 61920 C2 =  ASC(S4$)
  627. 61930 IF C2 = 83 THEN C = 1
  628. 61940 IF C2 = 82 THEN C = 6
  629. 61950 IF C2 = 75 THEN C = 19
  630. 61960 IF C2 = 77 THEN C = 4 
  631. 61970 RETURN
  632. 62000 REM **********  ALPHANUMERIC CHECK  **************
  633. 62010 MAX = FL(A,Q)
  634. 62020 GOTO 62040
  635. 62030 REM ********  MAX SET IN PROGRAM  ********
  636. 62040 A$ = ""
  637. 62050 PRINT ">"; 
  638. 62060 FOR N9 = 1 TO MAX
  639. 62070 K$(N9) = ""
  640. 62080 PRINT "_";
  641. 62090 NEXT N9
  642. 62100 PRINT "<";
  643. 62110 T2 = MAX + 1
  644. 62120 FOR T4 = 1 TO T2
  645. 62130 PRINT CHR$(CH);
  646. 62140 NEXT T4
  647. 62150 KT = 0
  648. 62160 KTMAX = 1
  649. 62170 REM ***********  CHECK ALFANUMERIC INPUT FOR LENGTH  ***********
  650. 62180 KT = KT + 1
  651. 62190 PRINT TAB(KT+1)"";
  652. 62200 K$ = INKEY$
  653. 62210 IF K$ = "" GOTO 62200
  654. 62220 C = ASC(K$)
  655. 62230 IF C = 0 THEN GOSUB 61900
  656. 62240 IF C = 13 GOTO 62350
  657. 62250 IF C = 17 OR C = 8 GOTO 62920
  658. 62260 IF C = 19 GOTO 62450
  659. 62270 IF C = 4  GOTO 62500
  660. 62280 IF C = 6 GOTO 62560
  661. 62290 IF C = 1 GOTO 62730
  662. 62300 IF KT > MAX GOTO 62190
  663. 62310 K$(KT) = K$
  664. 62320 PRINT K$(KT);
  665. 62330 IF KT > KTMAX THEN KTMAX = KT
  666. 62340 GOTO 62180
  667. 62350 REM **********  RETURN  **********
  668. 62360 FOR T9 = 1 TO MAX
  669. 62370 A$ = A$ + K$(T9)
  670. 62420 NEXT T9
  671. 62430 PRINT "" 
  672. 62440 RETURN  
  673. 62450 REM ********* MOVE CURSE BACK ********
  674. 62460 IF KT = 1 GOTO 62190
  675. 62470 KT = KT - 1
  676. 62480 PRINT CHR$(CH);
  677. 62490 GOTO 62190
  678. 62500 REM ********* MOVE CURSER FORWARD *********
  679. 62510 IF KT >= MAX GOTO 62190
  680. 62520 IF KT >  KTMAX  GOTO 62190
  681. 62530 PRINT K$(KT);
  682. 62540 KT = KT + 1
  683. 62550 GOTO 62190
  684. 62560 REM ********** INSERT ***********
  685. 62570 X9 = MAX
  686. 62580 WHILE X9 > KT
  687. 62590 X9 = X9 - 1
  688. 62600 K$(X9 + 1) = K$(X9)
  689. 62610 WEND 
  690. 62620 K$(KT) = " "
  691. 62630 KTMAX = KTMAX + 1
  692. 62640 IF KTMAX > MAX THEN KTMAX = MAX
  693. 62650 FOR T9 = KT TO KTMAX
  694. 62660 PRINT K$(T9);
  695. 62670 NEXT T9
  696. 62680 T6 = (KTMAX - KT) +1
  697. 62690 FOR T7 = 1 TO T6
  698. 62700 PRINT CHR$(CH);
  699. 62710 NEXT T7
  700. 62720 GOTO 62190
  701. 62730 REM ********** DELETE ***********
  702. 62740 IF KT > KTMAX GOTO 62200
  703. 62750 IF KTMAX = 1 GOTO 62190
  704. 62760 K$(MAX + 1) = ""
  705. 62770 X9 = KT 
  706. 62780 WHILE X9 <= KTMAX
  707. 62790 K$(X9) = K$(X9 + 1)
  708. 62800 X9 = X9 + 1
  709. 62810 WEND 
  710. 62820 KTMAX = KTMAX - 1
  711. 62830 FOR T9 = KT TO KTMAX
  712. 62840 PRINT K$(T9);
  713. 62850 NEXT T9
  714. 62860 PRINT "_";
  715. 62870 T7 = (KTMAX - KT) + 2
  716. 62880 FOR T6 = 1 TO T7
  717. 62890 PRINT CHR$(CH);
  718. 62900 NEXT T6
  719. 62910 GOTO 62190
  720. 62920 REM ********* BACKSPACE ********
  721. 62930 IF KT = 1 GOTO 62190
  722. 62940 K$(KT) = " "
  723. 62950 KT = KT - 1
  724. 62960 K$(KT) = " "
  725. 62970 PRINT CHR$(CH);
  726. 62980 PRINT "_";
  727. 62990 PRINT CHR$(CH);
  728. 63000 GOTO 62190
  729.  " "
  730. 62950 KT = KT - 1
  731. 62960 K$(KT) = " "
  732. 62970 PRINT CHR$(CH);
  733. 62980 PRINT "_";
  734. 62990 PRINT CHR$(CH);
  735. 63000 GOTO 6219